home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (PO) / Nibble Volume 09, No. 06 (1988-06)(MicroSPARC)(Side A).zip / Nibble Volume 09, No. 06 (1988-06)(MicroSPARC)(Side A).po / SWAP.S < prev    next >
Text File  |  1996-12-24  |  5KB  |  217 lines

  1. *****************************
  2. *                           *
  3. *   SUPER.SWAP              *
  4. *   BY TOM DORRIS           *
  5. *   COPYRIGHT (C) 1987      *
  6. *   BY MICROSPARC,  INC.    *
  7. *   CONCORD, MA  01742      *
  8. *                           *
  9. *   MERLIN-16 ASSEMBLER     *
  10. *                           *
  11. *****************************
  12.  
  13.  
  14.           ORG $6000
  15. HCOR      = $E9
  16. VCOR      = $EB
  17. POS       = $26
  18. HPOSN     = $F411 CALCS HIRES BASE ADDRESS
  19. SLOC      = $FD SUPER HIRES POINTER
  20. CLRBYT    = $7
  21. TRASH     = $8
  22.  
  23.           XC
  24.           XC
  25.  
  26. * SET UP VARIABLES
  27.  
  28.           STZ SLOC
  29.           STZ HCOR
  30.           STZ HCOR+1
  31.           STZ VCOR
  32.           LDA #$20
  33.           STA SLOC+1
  34.           LDA #$E1
  35.           STA SLOC+2
  36.  
  37. * CLEAR SCREEN
  38.  
  39. MORE      LDA #$FF
  40.           STA [SLOC]
  41.           INC SLOC
  42.           BNE MORE
  43.           INC SLOC+1
  44.           LDA SLOC+1
  45.           CMP #$9D
  46.           BNE MORE
  47.  
  48. * CLEAR SCBS
  49.  
  50.           LDY #0
  51. MJK       LDA #0
  52.           STA [SLOC],Y
  53.           INY
  54.           BNE MJK
  55.           LDA #$20
  56.           STA SLOC+1
  57.  
  58. * MOVE IN COLOR PALETTE
  59.  
  60.           LDX #10
  61. MRCLR     LDA CLRTBL,X
  62.           STAL $E19E00,X
  63.           DEX
  64.           BPL MRCLR
  65.           LDA #0
  66.           STAL $E19E1E
  67.           STAL $E19E1F
  68.  
  69. *===============================
  70. * BEGIN CONVERSION
  71. *===============================
  72.  
  73. AGAIN     JSR HSCRN CHECK PIXEL
  74.           BNE CHKQ IS IT ON?
  75.           LDA #$0F NO, PLOT BLACK
  76.           JSR PLT
  77.           JMP AFTER
  78. CHKQ      LDA HCOR
  79.           ORA HCOR+1 IS IT LEFTMOST PIXEL?
  80.           BEQ SKTH YES, DON'T CHECK LEFT
  81.           JSR DCPOS
  82.           JSR HSCRN IS PIXEL TO LEFT ON?
  83.           BEQ SKPBK
  84.           JSR INPOS YES, PLOT AS WHITE
  85.           LDA #0
  86.           JSR PLT
  87.           JMP AFTER
  88. SKPBK     JSR INPOS MOVE BACK TO PIXEL
  89. SKTH      JSR INPOS MOVE RIGHT ONE PIXEL
  90.           JSR HSCRN
  91.           BEQ CLR IS PIXEL TO RIGHT ON?
  92.           JSR DCPOS YES, PLOT AS WHITE
  93.           LDA #0
  94.           JSR PLT
  95.           JMP AFTER
  96. CLR       STZ CLRBYT NO, FIGURE PIXEL COLOR
  97.           JSR DCPOS
  98.           JSR HSCRN
  99.           LDA (POS),Y IS HI-BIT SET?
  100.           AND #$80
  101.           BEQ NTHGH NO, GO ON
  102.           LDA #$02 YES, BEGIN WITH COLOR 2
  103.           STA CLRBYT
  104. NTHGH     LDA HCOR
  105.           AND #$01 ADD ONE TO COLOR NUMBER
  106.           ORA CLRBYT IF IN ODD COLUMN
  107.           INC
  108.           STA TRASH
  109.           JSR PLT PLOT ONE PIXEL
  110.           JSR INPOS
  111.           JSR CHECK
  112.           JSR INPOS
  113.           JSR HSCRN CHECK FOR ADJACENT COLOR
  114.           TAY
  115.           JSR DCPOS
  116.           TYA
  117.           BEQ SKPLT NONE, DON'T PLOT
  118.           LDA TRASH YES, MAKE COLOR APPEAR
  119.           JSR PLT SOLID
  120. SKPLT     JMP AFTER
  121.  
  122. PLT       STA CLRBYT
  123.           ASL
  124.           ASL
  125.           ASL
  126.           ASL
  127.           ORA CLRBYT SET LEFT AND RIGHT PIXEL
  128.           STA CLRBYT TO SAME COLOR
  129.           LDA HCOR
  130.           AND #$01
  131.           TAX
  132.           LDA CMASK,X FIND OUT WHICH NIBBLE TO
  133.           AND CLRBYT STORE COLOR IN
  134.           STA CLRBYT
  135.           LDA SMASK,X
  136.           AND [SLOC] CLEAR PIXEL
  137.           ORA CLRBYT
  138.           STA [SLOC] STORE COLOR OF PIXEL
  139.           RTS
  140.  
  141. AFTER     JSR INPOS
  142.           JSR CHECK
  143.           LDA HCOR+1
  144.           BNE NTUP
  145.           JMP AGAIN
  146. NTUP      LDA #20
  147.           STA PNT+1
  148.           LDA HCOR
  149.           CMP #24 MOVE TO NEXT LINE?
  150.           BPL NXLN
  151.           JMP AGAIN NO, PLOT ANOTHER PIXEL
  152. NXLN      BEQ SKDC DID LINE END EVENLY?
  153.           DEC PNT+1 NO, DON'T ADD TOO MUCH
  154. SKDC      STZ HCOR
  155.           STZ HCOR+1 CLEAR X-COOR
  156.           INC VCOR
  157.           LDA SLOC GET ADDRESS OF NEXT LINE
  158.           CLC
  159. PNT       ADC #20
  160.           STA SLOC
  161.           BCC CHCK
  162.           INC SLOC+1
  163. CHCK      LDA VCOR
  164.           CMP #192 BOTTOM OF SCREEN?
  165.           BEQ QUIT
  166.           JMP AGAIN NO, PLOT MORE
  167. QUIT      RTS
  168.  
  169. DCPOS     DEC HCOR
  170.           LDA HCOR
  171.           CMP #$FF
  172.           BNE RTN
  173.           DEC HCOR+1
  174. RTN       RTS
  175.  
  176. INPOS     INC HCOR
  177.           BNE RTN2
  178.           INC HCOR+1
  179. RTN2      RTS
  180.  
  181. CHECK     LDA HCOR
  182.           AND #$01
  183.           BEQ RTN3
  184.           INC SLOC
  185.           BNE RTN3
  186.           INC SLOC+1
  187. RTN3      RTS
  188.  
  189. HSCRN     LDA VCOR
  190.           LDX #0
  191.           LDY #0
  192.           JSR HPOSN
  193.           LDY #0
  194.           LDA HCOR
  195.           LDX HCOR+1
  196.           BEQ NTSET
  197.           LDY #$24
  198.           CLC
  199.           ADC #$04
  200. NTSET     CMP #$07
  201.           BCC DONE
  202.           SBC #$07
  203.           INY
  204.           BNE NTSET
  205. DONE      TAX
  206.           LDA (POS),Y
  207.           AND MASK,X
  208.           RTS
  209.  
  210. * LOOK-UP TABLES
  211.  
  212. MASK      HEX 01020408102040
  213. CLRTBL    HEX FF0F0F0FF0000F00000F
  214. SMASK     HEX F00F
  215. CMASK     HEX 0FF0
  216.  
  217.